package br.ufpe.cin.ip.biblioteca.entidades;

import java.io.Serializable;

public class Funcionario implements Serializable {
	private static final long serialVersionUID = 3442552527634549546L;
	private String login;
	private String senha;
	private String nome;
	private String matricula;
	
	public Funcionario() {
		this("", "");
	}
	
	public Funcionario(String login, String senha) {
		super();
		this.login = login;
		this.senha = senha;
		this.nome = "";
		this.matricula = "";
	}
	
	public String getLogin() {
		return this.login;
	}
	
	public void setLogin(String login) {
		this.login = login;
	}
	
	public String getSenha() {
		return this.senha;
	}
	
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	public String getNome() {
		return this.nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getMatricula() {
		return this.matricula;
	}
	
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	
	@Override
	public int hashCode() {
		if(this.matricula!=null) {
			return this.matricula.hashCode();
		}
		
		return 0;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj!=null && obj instanceof Funcionario && (this==obj || (this.matricula!=null && this.matricula.equals(((Funcionario) obj).getMatricula())))) {
			return true;
		} else {
			return false;
		}
	}
	
	@Override
	public String toString() {
		String s = "";
		
		if(this.matricula!=null && !this.matricula.isEmpty()) {
			s += "[Mat: " + this.matricula + "] ";
		}
		
		if(this.nome!=null && !this.nome.isEmpty()) {
			s += this.nome;
		}
		
		if(this.login!=null && !this.login.isEmpty()) {
			s += " [" + this.login + "]";
		}
		
		if(!s.isEmpty())
			return s;
		else
			return super.toString();
	}
}
